{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据准备"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "data_1 = np.random.randn(200, 2)+[1, 1]\n",
    "data_2 = np.random.randn(200, 2)+[4, 4]\n",
    "data_3 = np.random.randn(200, 2)+[7, 1]\n",
    "\n",
    "data = np.concatenate((data_1, data_2, data_3), axis=0)\n",
    "\n",
    "\n",
    "X_train, X_test = train_test_split(data, test_size=0.2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型基本\n",
    "有了数据之后，最先做的应该就是选取$k$个质心点，为了满足选取的质心点在数据各维度的范围内，先计算数据各维度上的均值与方差，再引入随机值做质心选取。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "# def gen_center(X_train, k):\n",
    "#     n_sample = X_train.shape[0]\n",
    "#     n_feature = X_train.shape[1]\n",
    "\n",
    "#     # 为了在数据范围内产生随机质心，首先计算各特征的统计量\n",
    "#     f_mean = np.mean(X_train, axis=0).reshape((1, n_feature))\n",
    "#     f_std = np.std(X_train, axis=0).reshape((1, n_feature))\n",
    "\n",
    "#     centers = np.random.randn(k, n_feature)*f_std+f_mean    # (k,n_feature)\n",
    "#     return centers\n",
    "\n",
    "\n",
    "# k=3\n",
    "# centers = gen_center(X_train, k)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "选取好质心后，接下来开始迭代。\n",
    "- 计算每个样本离每个质心的距离，该距离用矩阵保存，维度为$(n\\_sample,k)$，然后使用```np.argmin()```就能很方便求出样本点被归到哪个类别"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# n_sample = X_train.shape[0]\n",
    "\n",
    "# clusters = np.zeros(n_sample)    # 每个样本都对应一个类，相当于Y\n",
    "# dist = np.zeros((n_sample, k))    # 每个样本对每个质心都有一个距离\n",
    "\n",
    "# for i in range(k):\n",
    "#     dist[:, i] = np.linalg.norm(X_train-centers[i], axis=1)\n",
    "\n",
    "# # 样本对应的类别为距离最近的质心\n",
    "# clusters = np.argmin(dist, axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 根据分类好的数据，计算每个类别下的质心，并更新质心"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# # 计算每个类别下的均值坐标，更新质心\n",
    "# for i in range(k):\n",
    "#     centers[i] = np.mean(X_train[clusters == i], axis=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "KMeans结束迭代的条件有两个：一是设置最大迭代次数，二是当质心不再移动时。为了能够计算每次迭代质心的移动距离，使用两个变量```cent_pre```与```cent_cur```来保存当前迭代的质心与上轮质心。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "clusters = np.zeros(n_sample)    # 每个样本都对应一个类，相当于Y\n",
    "dist = np.zeros((n_sample, k))    # 每个样本对每个质心都有一个距离\n",
    "\n",
    "from copy import deepcopy\n",
    "cent_pre = np.zeros(centers.shape)\n",
    "cent_cur = gen_center(X_train,k)\n",
    "cent_move = np.linalg.norm(cent_cur-cent_pre)    # 每轮迭代后质心的移动距离\n",
    "\n",
    "epsilon = 1e-3    # 质心需要移动的最小距离\n",
    "epoch = 0    # 当前迭代次数\n",
    "max_iter = 50    # 最大迭代次数\n",
    "while epoch < max_iter and cent_move > epsilon:\n",
    "    epoch += 1\n",
    "\n",
    "    # 首先计算每个样本离每个质心的距离\n",
    "    for i in range(k):\n",
    "        dist[:, i] = np.linalg.norm(X_train-cent_cur[i], axis=1)\n",
    "\n",
    "    # 样本对应的类别为距离最近的质心\n",
    "    clusters = np.argmin(dist, axis=1)\n",
    "\n",
    "    cent_pre = deepcopy(cent_cur)\n",
    "\n",
    "    # 计算每个类别下的均值坐标，更新质心\n",
    "    for i in range(k):\n",
    "        cent_cur[i] = np.mean(X_train[clusters == i], axis=0)\n",
    "\n",
    "    cent_move = np.linalg.norm(cent_cur-cent_pre)\n",
    "    \n",
    "plt.clf()\n",
    "plt.scatter(X_train[:, 0], X_train[:, 1], alpha=0.5, c=clusters)\n",
    "plt.scatter(cent_cur[:, 0], cent_cur[:, 1], marker='*', c='k')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "模型训练好之后，对测试样本进行预测归类，并做可视化。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_sample = X_test.shape[0]\n",
    "dist_test = np.zeros((test_sample, k))\n",
    "\n",
    "# KMeans预测的实质不过是计算各测试样例到各质心的距离，选取最近的质心作为归类\n",
    "for i in range(k):\n",
    "    dist_test[:, i] = np.linalg.norm(X_test-cent_cur[i], axis=1)\n",
    "clus_pred = np.argmin(dist_test, axis=1)\n",
    "\n",
    "plt.clf()\n",
    "plt.scatter(X_test[:, 0], X_test[:, 1], alpha=0.5, c=clus_pred)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 改进\n",
    "KMeans最大的缺陷就在于不合适的初始质心会陷入局部解而无法跳出，解决办法也有两个：一是多次运行KMeans算法，将最后的聚类结果做投票；二是改进质心的选取方法，如KMeans++。\n",
    "\n",
    "KMeans++的思想很朴素，简单地认为初始各质心应该相互离得比较远，在KMeans++中，质心是逐个被选取的，随机点被选取为质心的概率跟已有质心的距离成正比，即离已有质心越远的点越有可能被选取为质心。易得对于参数为$k$的KMeans++模型，在选取质心的阶段就需要计算$k-1$次距离矩阵。\n",
    "\n",
    "### 多次重复的KMeans"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 待补充"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### KMeans++\n",
    "关键在于初始质心的选取，需要计算：\n",
    "$$\n",
    "D(x^{(i)})=min[dist(x^{(i)},C_{1}),dist(x^{(i)},C_{2}),...,dist(x^{(i)},C_{K})]\n",
    "$$\n",
    "该点$x^{(i)}$被选为质心的概率为：\n",
    "$$\n",
    "P(x^{(i)})=\\frac{D(x^{(i)})^{2}}{{\\sum}D(x^{(j)})^{2}}\n",
    "$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "def gen_center(X_train, k):\n",
    "    n_sample, n_feature = X_train.shape\n",
    "\n",
    "    # 第一个质心随机选\n",
    "    idx = np.random.randint(0, n_sample)\n",
    "    centers = [X_train[idx, :]]\n",
    "\n",
    "    # 选出后面k-1个质心\n",
    "    for i in range(1, k):\n",
    "        dist = np.zeros((n_sample, len(centers)))    # 各样本到质心的距离矩阵\n",
    "        for cent_idx in range(len(centers)):\n",
    "            dist[:, cent_idx] = np.linalg.norm(X_train-centers[cent_idx],\n",
    "                                               axis=1)\n",
    "\n",
    "        dist = np.min(dist, axis=1)    # 所有样本离各质心距离的最小值\n",
    "        p = dist/np.sum(dist)    # 归一化后的最小距离当做概率进行下一个质心的选取，这里没有计算平方\n",
    "\n",
    "        next_cent_idx = np.random.choice(n_sample, p=p)\n",
    "        centers.append(X_train[next_cent_idx])\n",
    "\n",
    "    return np.array(centers)\n",
    "\n",
    "\n",
    "centers = gen_center(X_train, 3)\n",
    "plt.clf()\n",
    "plt.scatter(X_train[:, 0], X_train[:, 1], alpha=0.5)\n",
    "plt.scatter(centers[:, 0], centers[:, 1], marker='*', c='k')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
